package com.atguigu.override;

public class Student extends Person{
    private int score;

    public Student() {
    }

    public Student(String name, int age, int score) {
        super(name, age);
        this.score = score;
    }

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }

    //重新父类方法的快捷键
    //(1)Ctrl + O（推荐）
    //(2)或Alt + Insert 再选Override Methods
    /*
    重写方法的上面标记 @Override的作用？
    （1）可读性更好：人家一看就知道这是一个重写的方法
    （2）可以让编译器对它进行更加严格的格式校验，如果不符合重写的要求，直接报错。

    但是，如果一个方法并未违反重写的要求，那么加@Override 或不加 不影响它是重写的本质。
     */
    @Override
    public String getInfo() {
//        return "姓名：" + name +"，年龄：" + age +"，成绩：" + score;
        //私有的子类不能直接用
        //return "姓名：" + getName() +"，年龄：" + getAge() +"，成绩：" + score;

//        return getInfo()+"，成绩：" + score;//错误，这是无条件递归调用
        return super.getInfo() +"，成绩：" + score;
                //super.getInfo()等价于 父类getInfo()方法的方法体
        //即等价于 return "姓名：" + name +"，年龄：" + age;
    }
}
